﻿#define _CRT_SRCURE_NO_WARNINGS 1
#pragma  warning (disable:4996)

#include "Sort.h"


void InsertSortTest()
{
	int arr[] = { 9,1,2,5,7,4,8,6,3,5 };

	InsertSort(arr, sizeof(arr) / sizeof(int));
	PrintArray(arr, sizeof(arr) / sizeof(int));
}
void ShellSortTest()
{
	//int arr[] = { 9,1,2,5,7,4,8,6,3,5 };
	int arr[] = { 9,8,7,6,5,4,3,2,1,0,5,4,2,3,6,2,0,2,1,-1,-2,-1,-3 };
	PrintArray(arr, sizeof(arr) / sizeof(int));
	ShellSort(arr, sizeof(arr) / sizeof(int));
	//第一次预排序之后，大的数就基本到后面，小的数基本到前面了就
	//随着预排序次数的增多，我们的数组就非常的接近于有序了。
	//最后一锤子gap==1排序一走完，直接就变成有序的了。
	PrintArray(arr, sizeof(arr) / sizeof(int));
	
}
void SelectSortTest()
{
	int arr[] = { 9,1,2,5,7,4,8,6,3,5 };
	SelectSort(arr, sizeof(arr) / sizeof(int));
	PrintArray(arr, sizeof(arr) / sizeof(int));
}
void BubbleSortTest()
{
	int arr[] = { 9,1,2,5,7,4,8,6,3,5 };
	BubbleSort(arr, sizeof(arr) / sizeof(int));
	PrintArray(arr, sizeof(arr) / sizeof(int));
}
void QuickSortTest()
{
	int arr[] = { 6,1,2,7,9,3,4,5,6,8 };
	QuickSort(arr, 0, sizeof(arr) / sizeof(int) - 1);
	PrintArray(arr,sizeof(arr) / sizeof(int));
}
void QuickSortNonRTest()
{
	int arr[] = { 6,1,2,7,9,3,4,5,6,8 };
	QuickSortNonR(arr, 0, sizeof(arr) / sizeof(int) - 1);
	PrintArray(arr, sizeof(arr) / sizeof(int));
}
void MergeSortTest()
{
	int arr[] = { 6,1,2,7,9,3,4,5,6,8 };
	MergeSort(arr, sizeof(arr) / sizeof(int));
	PrintArray(arr, sizeof(arr) / sizeof(int));
}
void MergeSortNonRTest()
{
	int arr[] = { 6,1,2,7,9,3,4,5,6,8 };
	//int arr[] = { 10,6,7,1,3,9,4,2 };//这组8个测试数据还是没有问题的。对于我们的归并非递归排序来讲。
	MergeSortNonR(arr, sizeof(arr) / sizeof(int));
	PrintArray(arr, sizeof(arr) / sizeof(int));
}
void CountSortTest()
{
	//int arr[] = { 6,1,2,7,9,3,4,5,6,8 };
	int arr[] = { -1,-2,-1,-3,-3,-4,-5,2,4,3,5,8,9,6 };
	CountSort(arr, sizeof(arr) / sizeof(int));
	PrintArray(arr, sizeof(arr) / sizeof(int));
}
int main()
{
	//InsertSortTest();
	//ShellSortTest();
	//SelectSortTest();
	//BubbleSortTest();
	//QuickSortTest();
	//QuickSortNonRTest();
	//MergeSortTest();
	//MergeSortNonRTest();
	CountSortTest();
	return 0;
}

















































